package com.company;


import java.util.Scanner;

public class ScannerDemo
{
    public static void main(String[] args)
    {
        Scanner scannerObject = new Scanner(System.in);

        System.out.println("Enter two whole numbers");                  //输入两个整数
        System.out.println("separated by one or more spaces:");         //用一个或多个空格隔开

        int n1, n2;
        n1 = scannerObject.nextInt( );
        n2 = scannerObject.nextInt( );
        System.out.println("You entered " + n1 + " and " + n2);

        System.out.println("Next enter two numbers.");                  //接下来输入两个数字
        System.out.println("A decimal point is OK.");                   //一个小数点就可以了

        double d1, d2;
        d1 = scannerObject.nextDouble( );
        d2 = scannerObject.nextDouble( );
        System.out.println("You entered " + d1 + " and " + d2);

        System.out.println("Next enter two words:");                    //接下来输入两个单词

        String s1, s2;
        s1 = scannerObject.next( );
        s2 = scannerObject.next( );
        /*
        一、next()、nextInt()、nextDouble()、nextFloat()是一类
        即一定要读取到有效字符后才可以结束输入，对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符，
        next()方法会自动将其去掉，只有在输入有效字符之后，next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。

        简单地说，next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息，所以next方法不能得到带空格的字符串。

        二、nextLine()是另一类。
        nextLine()方法的结束符只是Enter键，即nextLine()方法返回的是Enter键之前的所有字符，它是可以得到带空格的字符串的。
        */

        System.out.println("You entered \"" +
                s1 + "\" and \"" + s2 + "\"");

        s1 = scannerObject.nextLine( ); //To get rid of '\n'  去掉' n'

        System.out.println("Next enter a line of text:") ;  //接下来输入一行文本
        s1 = scannerObject.nextLine( );
        System.out.println("You entered: \"" + s1 + "\"");
    }
}

